package com.util;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;


public class JedisUtils {
	public static void main(String[] args) {
		JedisUtils js=new JedisUtils();
		System.out.println(js.getJedis());
	}
    private static JedisPool jp;
    static{
    	JedisPoolConfig jpc =new JedisPoolConfig();
    	//如果赋值为-1，则表示不限制；如果pool已经分配了maxActive个jedis实例，则此时pool的状态为exhausted(耗尽)。
    	 //jpc.setMaxActive();
    	jpc.setMaxTotal(10000);
    	//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例，默认值也是8。
    	jpc.setMaxIdle(300);
    	 //等待可用连接的最大时间，单位毫秒，默认值为-1，表示永不超时。如果超过等待时间，则直接抛出
    	jpc.setMaxWaitMillis(100000);
    	//在borrow一个jedis实例时，是否提前进行validate操作；如果为true，则得到的jedis实例均是可用的；
    	//jpc.setTestOnBorrow(true);
    	jp=new JedisPool(jpc,"localhost",6379);    	
    }
    public synchronized static Jedis getJedis(){
    	if(jp!=null){
    	Jedis jedis=jp.getResource();
    	jedis.auth("123456");	
    	return jedis;
    	}else{
    		return null;
    		}
    }
    @SuppressWarnings("deprecation")
	public static void returnJedisRes(Jedis jedis){
    	if(jedis!=null){
    	jp.returnResource(jedis);
    	}
    }
}
